package com.iot08.common.entity.app;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.Date;

/**
 * @author cwj
 * @description
 * @date 2025/7/6 15:13
 **/
@Data
@Document("device_single_chat_group_message")
public class DeviceSingleChatGroupMessage implements Serializable {

    @Id
    private String id;

    @Field("i")
    private String groupid;

    //发送者类型, 1:用户, 2:设备
    @Field("st")
    private Integer sendType;

    // 消息类型, 1:文字消息, 2:图片消息, 3:语音消息, 4:表情包
    @Field("mt")
    private Integer messageType;

    //表情包ID :只有 mt == 4时 才会出现
    private String bqId;

    //发送者标识, openid, imei
    @Field("s")
    private String sender;

    //接收者标识，imei号
    @Field("r")
    private String receiver;

    private String avator; //头像

    //消息内容, 文字内容, 图片文件名, 语音文件名
    @Field("c")
    private String content;

    //消息文件大小(字节数), mt为 2,3 时存在
    private Long size;

    //语音文件播放时长, mt为 3 时存在
    private Double duration;

    //是否为超过限制的记录（0：超过了限制的记录，1：没有超过限制的记录）
    private Integer isExceedLimitRecord;

    //消息下发或上报的时间，老版本为空，新版微聊协议会上报消息的时间
    private String chatReportTime;

    private String openid;

    @Field("t")
    private Double timestamp;

    private Date expiryAt;

    private Date createTime;
}
